# Fetching a list of Posts

This endpoint returns structured Post objects.
As with all Kantata OX API endpoints, the returned data will be referenced in sorted order in the `results` array
and will be indexed by ID in the `posts` top-level JSON key.
Please see our [Response Format](#section/Response-Format) section for more information.

Endpoint: GET /posts
Version: 1.0.0

## Query parameters:

  - `created_after` (string)
    Filter for records created after a specified datetime. The datetime must be in [ISO 8601](https://www.w3.org/TR/NOTE-datetime) format.

  - `created_before` (string)
    Filter for records created before a specified datetime. The datetime must be in [ISO 8601](https://www.w3.org/TR/NOTE-datetime) format.

  - `external_reference_external_message` (string)
    Filter the objects based on the external message of their associated external references. This is an exact match.

  - `external_reference_external_status` (string)
    Filter by the status of the external object in the external system.

  - `external_reference_service_model` (string)
    Filter by the type of the external object this external reference belongs to.

  - `external_reference_service_model_ref` (integer)
    Filter by the id of the external object this external reference belongs to.

  - `external_reference_service_model_refs` (string)
    Filter for objects that correlate to the specified external object IDs. Provide a comma-separated list of up to 200 external IDs.

  - `external_reference_service_name` (string)
    Filter by the name of the provider for integration.

  - `external_reference_status` (string)
    Filter by the status of the integration, this can be successful or fail.

  - `from_archived_workspaces` (boolean)
    Also includes posts from archived projects.

  - `has_external_references` (boolean)
    Filter by whether or not the object has external references.

  - `include` (string)
    Any of the below associations can be included in your request by providing the `include` param, e.g. `include=association1,association2`.
- `attachments`
 (Attachments::PostAttachment) - Any attachments associated to the post.
- `external_references`
 (ExternalReference) - Includes references to external integrations for this object.
- `google_documents`
 (GoogleDocument) - The post's Google document objects, available in
`google_document_ids`
; returned in the
`google_documents`
 top-level key.
- `newest_reply`
 (Post) - The most recent reply to the post.
- `newest_reply_user`
 (User) - The user who made the most recent reply to the post.
- `recipients`
 (User) - On private posts, the
`recipient_ids`
 array contains the IDs of recipients, returned in the
`users`
 top-level key.
- `replies`
 (Post) - Replies made to this post, returned in the
`posts`
 top-level key. Posts will contain a
`reply_ids`
 array.
- `story`
 (Story) - The task (if any) to which the post is linked.
- `subject`
 (polymorphic) - When you include this association, posts that are replies will have a
`subject_id`
 key. This references

their parent post in the
`posts`
 top-level key.
- `user`
 (User) - The user who created the post.
- `workspace`
 (Workspace) - The project to which this post belongs.

  - `only` (string)
    Allows you to request one or more resources directly by ID. Multiple IDs can be supplied
in a comma separated list, like `GET /api/v1/workspaces.json?only=5,6,7`.

  - `order` (string)
    Supply `order` with the name of a valid sort field for the endpoint and a direction.
Valid values: `newest_reply_at:asc` and `newest_reply_at:desc`.

  - `page` (integer)

  - `parents_only` (boolean)
    Results will only include parent posts (without including replies by themselves).

  - `per_page` (integer)

  - `private` (boolean)
    Only includes posts that are private to the current user.

  - `search` (string)

  - `story_id` (integer)
    Only includes posts from the specified task.

  - `story_ids` (string)
    Filter for posts linked to specific tasks. Provide a comma-separated list of task IDs.

  - `updated_after` (string)
    Filter for records updated after a specified datetime. The datetime must be in [ISO 8601](https://www.w3.org/TR/NOTE-datetime) format.

  - `updated_before` (string)
    Filter for records updated before a specified datetime. The datetime must be in [ISO 8601](https://www.w3.org/TR/NOTE-datetime) format.

  - `without_external_reference_service_name` (string)
    Exclude by the existence of an external reference with the specified service name.

  - `workspace_id` (integer)
    Only includes posts from the specified project.

## Response 200:

  - `200` (unknown)
    A list of Posts have been retrieved.

## Response 200 fields (application/json):

  - `count` (integer)

  - `meta` (object)

  - `meta.count` (integer)

  - `meta.page_count` (integer)

  - `meta.page_number` (integer)

  - `meta.page_size` (integer)

  - `results` (array)

  - `results.key` (string)

  - `results.id` (string)

  - `posts` (object)

  - `external_references` (object)

  - `users` (object)

  - `workspaces` (object)

  - `stories` (object)

  - `attachments` (object)

## Response 400:

  - `400` (unknown)
    Bad Request

## Response 400 fields (application/json):

  - `errors` (array)

  - `errors.type` (string)

  - `errors.message` (string)

## Response 401:

  - `401` (unknown)
    Unauthorized request

## Response 401 fields (application/json):

  - `errors` (array)

  - `errors.type` (string)

  - `errors.message` (string)

## Response 403:

  - `403` (unknown)
    Forbidden request

## Response 403 fields (application/json):

  - `errors` (array)

  - `errors.type` (string)

  - `errors.message` (string)

## Response 404:

  - `404` (unknown)
    Page Not Found

## Response 404 fields (application/json):

  - `errors` (array)

  - `errors.type` (string)

  - `errors.message` (string)

## Response 422:

  - `422` (unknown)
    Unprocessable Entity

## Response 422 fields (application/json):

  - `errors` (array)

  - `errors.type` (string)

  - `errors.message` (string)

## Response 503:

  - `503` (unknown)
    Service is unavailable

## Response 503 fields (application/json):

  - `errors` (array)

  - `errors.type` (string)

  - `errors.message` (string)

